Providing task assistance to a user

ABSTRACT

An intelligent task assistant program can identify tasks associated with a user over a reporting period based on an analysis of, and inferences drawn from, data associated with one or more personal information programs, such as an electronic calendar application, an electronic reminder application, an electronic collaborative application, and/or an electronic communication application. The task assistant may also prioritize the identified tasks based on content associated with the tasks. Some or all of the prioritized tasks can be provided to an output device for perception by the user.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/516,073, filed Jul. 18, 2019, the entire disclosure of which ishereby incorporated by reference in its entirety.

BACKGROUND

Many professionals have a variety of tasks to manage and complete in agiven period of time, such as a day, a week, or a month. The tasks caninclude attending meetings, sending and responding to electroniccommunications, and completing assignments. Additionally, a professionaloften has to filter or prioritize his pending and new tasks on a dailybasis. In some instances, the professional monitors and prioritizes hisor her tasks manually, such as through to-do lists.

These actions can be more significant or relevant when the professionalwill be out of the office for a period of time. For example, theprofessional may be on vacation or attending a business function.Typically, prior to being out of office, the professional can be underadditional stress as he attempts to complete as many tasks as possibleand delegate and reschedule other tasks. While the professional is outof the office, new tasks can be assigned to him or the priority ofpending tasks may change. Consequently, the professional may check hiselectronic communications, or call the office, several times a day toensure he does not miss anything. And once the professional returns tothe office after being away for a while, he typically has to manuallydetermine the tasks he or she still needs to complete, identify newtasks that have been assigned to him, and follow up on the tasks thatwere delegated or rescheduled before the professional went away.

It is with respect to these and other general considerations thatembodiments have been described. Also, although relatively specificproblems have been discussed, it should be understood that theembodiments should not be limited to solving the specific problemsidentified in the background.

SUMMARY

Embodiments disclosed herein provide techniques for identifying tasksassociated with a user over a reporting period based on an analysis of,and inferences drawn from, data associated with one or more personalinformation programs. Additionally, in some instances, a priority foreach identified task may be determined. Some or all of the tasks or theprioritized tasks can be provided to an output device for perception bythe user.

In one aspect, a method includes determining tasks associated with auser in a reporting period based on personal information program (PIP)data. The PIP data can be associated with a personal informationprogram, such as, for example, an electronic calendar application, anelectronic reminder application, an electronic contacts application, acollaborative application, and/or an electronic communicationapplication. A priority of each task is determined based on thereporting period and content associated with the task to produceprioritized tasks. At least a portion of the prioritized tasks isprovided, or is caused to be provided to an output device. For example,at least a portion of the prioritized tasks may be displayed at adisplay screen. In one embodiment, the method is performed by acomputing device that includes a processing device executinginstructions comprising one or more machine learning algorithms.

In another aspect, a system includes a processing device and a memory.The memory stores instructions, that when executed by the processingdevice, cause the system to perform operations. The operations includedetermining tasks associated with a user in a reporting period based onpersonal information program (PIP) data. The PIP data can be associatedwith a personal information program, such as, for example, an electroniccalendar application, an electronic reminder application, an electroniccontacts application, a collaborative application, and/or an electroniccommunication application. A priority of each task is determined basedon the reporting period and content associated with the task to produceprioritized tasks. At least a portion of the prioritized tasks areprovided, or are caused to be provided, to an output device.

In yet another aspect, a method includes determining a plurality oftasks associated with a user in a reporting period based on PIP data. Aspreviously described, the PIP data can be associated with an electroniccalendar application, an electronic reminder application, an electroniccontacts application, or an electronic communication application. Apriority of each task in the plurality of tasks is determined based onthe reporting period and content associated with the task to produce aplurality of prioritized tasks. A portion of the plurality ofprioritized tasks can be displayed, or caused to be displayed in a userinterface, where at least one of the prioritized tasks comprises aninteractive notification that includes one or more control elements.Each control element enables the user to perform an operation on thetask, such as, for example, rescheduling the task, delegating the task,canceling the task, and indicating the task is completed. In oneembodiment, the method is performed by a machine learning processingdevice.

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

Non-limiting and non-exhaustive examples are described with reference tothe following Figures. The elements of the drawings are not necessarilyto scale relative to each other. Identical reference numerals have beenused, where possible, to designate identical features that are common tothe figures.

FIG. 1 depicts a block diagram of a distributed computing system inwhich aspects of the present disclosure may be practiced;

FIG. 2 illustrates a block diagram of a system operable to provideassistance in task completion;

FIG. 3 is an example relationship graph that can be used to determineone or more people associated with a user;

FIG. 4 is a flowchart of an example method of providing task assistance;

FIG. 5 depicts an urgent-important matrix that can be used to determinepriority;

FIG. 6 illustrates an example graphical user interface showingprioritized tasks;

FIG. 7 is a flowchart of a method of delegating a task;

FIG. 8 depicts an example graphical user interface for delegating atask;

FIG. 9 is a flowchart of a method of rescheduling a task;

FIG. 10 illustrates an example graphical user interface that may bepresented when a task is rescheduled;

FIG. 11 is a flowchart of a method of deferring a task;

FIG. 12 is a flowchart of a method of canceling a task;

FIG. 13 is a flowchart of a method of providing a summary report at theend of a reporting period;

FIG. 14 depicts an example graphical user interface that may present asummary report;

FIG. 15 is a flowchart of an example first method of operating a taskassistant;

FIG. 16 is a flowchart of an example second method of operating a taskassistant;

FIG. 17 is a block diagram depicting example physical components of acomputing device with which aspects of the disclosure may be practiced;

FIGS. 18A-18B are simplified block diagrams illustrating a mobilecomputing device with which aspects of the present disclosure may bepracticed; and

FIG. 19 is a block diagram depicting a distributed computing system inwhich aspects of the present disclosure may be practiced.

DETAILED DESCRIPTION

In the following detailed description, references are made to theaccompanying drawings that form a part hereof, and in which are shown byway of illustrations specific embodiments or examples. These aspects maybe combined, other aspects may be utilized, and structural changes maybe made without departing from the present disclosure. Embodiments maybe practiced as methods, systems or devices. Accordingly, embodimentsmay take the form of a hardware implementation, an entirely softwareimplementation, or an implementation combining software and hardwareaspects. The following detailed description is therefore not to be takenin a limiting sense, and the scope of the present disclosure is definedby the appended claims and their equivalents.

Personal information programs (PIP) are widely used by individuals ontheir personal computing devices as well as throughout businesses,organizations, venture, and other entities (hereinafter “enterprise”).PIPs are software applications that provide and/or manage electroniccommunications, electronic calendars, electronic lists or entries ofcontacts, electronic reminders, electronic to-do lists, and other data.The data associated with the PIPs (“PIP data”) is stored ascomputer-generated and computer-readable data at each user's computingdevice and/or at a cloud or enterprise storage device or memory that isaccessible over a network.

Embodiments disclosed herein provide an intelligent task assistantprogram (hereinafter “task assistant”) that can identify tasksassociated with a user over a given period of time (“reporting period”)based on an analysis of, and inferences drawn from, the user's PIP data.Once activated, the task assistant determines one or more tasksassociated with the user based on some or all of the PIP data accessibleby the task assistant. As used herein, a “task” refers to an action theuser is to perform. For example, a task may be sending an electroniccommunication or working on or completing a job, and/or attending ameeting, an appointment, or an event (e.g., a concert, a trade show, aneducational event, and the like). The term “event” refers to a meeting,appointment, or event on a calendar.

The task assistant may also prioritize the identified tasks to informthe user of his or her most important tasks. The importance of a taskcan be based on a due date, a person or the people associated with thetask, the subject of the task, and the like. Some or all of theprioritized tasks can be provided to an output device for perception bythe user. For example, the task assistant can cause the prioritizedtasks to be displayed on a display screen. Alternatively, the taskassistant may cause the top N tasks to be displayed on the displayscreen, where N is a number equal to or greater than zero. In an exampleembodiment, the task assistant may present the top five tasks to theuser.

In some embodiments, the task assistant prioritizes the tasks in thecontext of a reporting period. The reporting period may be set by theuser. For example, a user may want the task assistant to provide his orher tasks every day or every Monday (e.g., the start of the work week).In another example, the reporting period can cover a time period beforeand/or after a period when the user will be unavailable (e.g., out ofthe office).

Additionally or alternatively, the task assistant prioritizes the tasksbased on the circumstance(s) associated with the reporting period. In anexample embodiment, the task assistant can detect the user will be on aweek-long vacation. Prior to the start of the vacation, the taskassistant may identify and prioritize the user's tasks for the week theuser will be on vacation, and provide the tasks to an output device.Thus, the circumstance associated with the reporting period (e.g., theweek) is the vacation.

In some embodiments, the task assistant can further assist the user incompleting a task by performing one or more operations on the tasks. Forexample, the user can instruct the task assistant that a particular taskhas been completed. Additionally or alternatively, the task assistantcan assist the user in delegating a task, rescheduling a task, cancelinga task, and/or deferring a task.

Non-limiting and non-exhaustive examples are described with reference tothe following FIGS. 1-19 . The elements of the drawings are notnecessarily to scale relative to each other. Identical referencenumerals have been used, where possible, to designate identical featuresthat are common to the figures.

FIG. 1 illustrates a block diagram of a distributed computing system inwhich aspects of the present disclosure may be practiced. In oneembodiment, the system 100 is an enterprise system that provides users102A, 102B with a personal information program (PIP) 104A, 104B,respectively, that the users 102A, 102B can access and interact with oncomputing devices 106A, 106B. Each PIP 104A, 104B can include anelectronic calendar, contacts, electronic notes, electronic reminders,electronic to-do lists, and other data. As used herein, the term “PIPdata” relates to the electronic data associated with the electroniccalendar, contacts, electronic notes, electronic reminders, electronicto-do lists, and other electronic data associated with the PIP.

A PIP 108 may be stored on one or more storage devices (represented bystorage device 110). The PIPs 104A, 104B executing on computing devices106A, 106B can access and/or interact with a PIP 108 executing on one ormore server computing devices (represented by server computing device112) using one or more networks (represented by network 114). Thenetwork 114 is illustrative of an intranet and/or a distributedcomputing network such as the Internet.

In one embodiment, the PIP data of the users 102A, 102B is stored on arespective computing device 106A, 106B (not shown in FIG. 1 ; see e.g.,1710 in FIG. 17 ). Additionally or alternatively, the PIP data 116associated with the users 102A, 102B can be stored in the storage device110. As will be described in more detail later, a task assistant storedon storage device 110 and executed by the server computing device 112can analyze a user's PIP data to provide assistance to the user inidentifying and completing one or more tasks. In other embodiments, thetask assistant program 118 can be implemented on the computing devices106A, 106B, or be distributed between the server computing device 112and the computing devices 106A, 106B.

FIG. 2 illustrates a block diagram of a system operable to provideassistance in task completion. The system 200 includes a task assistant202, one or more PIP data sources 204, one or more machine learning (ML)models 206, and one or more applications 208. In general, the taskassistant 202 accesses, analyzes, and/or retrieves PIP data from the oneor more PIP data sources 204 to determine the tasks associated with auser, prioritize the tasks, and perform user-requested operations on thetasks (e.g., reschedule, delegate, etc.).

The task assistant 202 includes a machine learning processing device 210that executes one or more machine learning (ML) algorithms 212. In theillustrated embodiment, the ML algorithms 212 include a ML rankingalgorithm 214, a ML rescheduling algorithm 216, and a ML delegatingalgorithm 218. The ML algorithms 212 receive PIP data from the PIP datasources 204, which may include electronic communications data 220,calendar data 222, reminder data 224, and contacts data 225. The MLalgorithms 212 analyzes the PIP data to prioritize the tasks associatedwith the user and/or to perform operations on the tasks.

The ML algorithms 212 are initially trained using PIP data associatedwith thousands of users. The training process allows the ML algorithmsto learn over time what data to consider and not consider whendetermining tasks, what data to analyze when prioritizing tasks, andwhat data to review when performing operations on the tasks. The dataincludes PIP data, and in some instances, other data in a user'secosystem. Once in use, the ML algorithms 212 continue to learn based ona particular user's interactions with the task assistant. Additionally,in some embodiments, the ML algorithms continue to learn based on theinteractions of a community of users (e.g., an enterprise, a nation,and/or global).

The electronic communications application 220 can include PIP data 221associated with one or more types of electronic communications, such aselectronic mail, instant messaging, web posts and social networking, andgroup chats. The electronic communications PIP data 221 may include, forexample, sender and recipient names, time of transmission, time ofreceipt, subject, content of the electronic communications, andattachments or content associated with the attachments (e.g., type ofdocument, title, author, etc.).

The calendar application 222 may include PIP data 223 can include anydata associated with calendar entries, such as appointments andmeetings. The calendar PIP data 223 may include, for example, dates andtimes of the meetings and the appointments, subject, attendees, contentof the calendar entries (e.g., any descriptions or data provided in thebody of the entry), and attachments or content associated with theattachments (e.g., type of document, title, author, etc.).

The reminder application 224 can include PIP data 225 associated withone or more to-do lists or reminders. The reminder PIP data 225 mayinclude, for example, subject and/or content of the reminder, creationdate, deadline date, completion date, other users associated with areminder, and attachments or content associated with the attachments(e.g., type of document, title, author, etc.).

The contacts application 226 can include PIP data 227 associated withthe contacts a user knows or interacts with, such as co-workers,managers, friends, family, co-workers, and other users. For example, theother users can be one or more users that are on the same team orproject as the user, are associated with an organization or venture asthe user, and/or correspond with the user by one or more electroniccommunication applications. The contacts PIP data 227 can be obtained orderived, for example, from one or more contact lists, senders andrecipients of electronic communications, calendar entries, and/orreminders.

The one or more ML models 206 can include any number and/or type of MLmodels. The ML models 206 provide data and/or analysis to the one ormore ML algorithms 212. In the illustrated embodiment, the ML models 206include a people understanding model 228, a subject understanding model230, a non-semantic ranker model 232, an extraction model 234, anenterprise structure model 236, and an importance and delegation model238. In one embodiment, the various models can access data stored in thedata storage device 240. The data can include, for example,classifications and/or relationship graphs. An example relationshipgraph for people is described in more detail in conjunction with FIG. 3. As part of the continued learning of the ML algorithms, the datastored in the data storage device 240 is updated at select times basedon user interactions with the task assistant and on changes to the PIPdata.

The people understanding model 228 can be used to determine peopleassociated with a user. The people can be determined, for example, fromone or more contact lists, senders and recipients of electroniccommunications, calendar entries, reminders, and/or teams the user isassociated with in a collaborative application.

The subject understanding model 230 can be used to analyze andunderstand one or more subjects associated with the user. The subjectsmay include work projects, organizations, documents, assignments, etc.The subjects can be determined, for example, from one or more contactlists, electronic communications, calendar entries, reminders, and/orteams the user is associated with in a collaborative application.

The non-semantic ranker 232 may be used to identify and/or rank tasksbased on characteristics other than words or phrases. For example, thenon-semantic ranker 232 can rank tasks based on time, on the number ofattendees to a meeting, on the number of users associated with a task,and other non-semantic features.

The extraction model 234 can be used to determine and/or rank tasks bytopics in a particular application. For example, the extraction model234 may be used to rank tasks by a topic in an electronic communicationsapplication (e.g., electronic mail).

The enterprise structure model 236 can be used to identify and/or ranktasks based on data associated with an enterprise. In a non-limitingembodiment, the data associated with the enterprise can be the structureof the enterprise, the departments in the enterprise, the locations ofthe buildings of the enterprise, and the job title of each user in theenterprise.

The importance and delegation model 238 can be used to identify personsthat are the appropriate people/contacts, relevant to a given task orsubject matter. As an example, the importance and delegation model 238may be used to identify the appropriate person to be the delegatee for ameeting. In one embodiment, the importance and delegation model 238includes one or more machine learning algorithms 212 and/or heuristicsthat can use multiple features such as, for example, topics or subjectmatter, people, a time frame, a location, an organizational structure,and the like.

The one or more applications 208 include applications that may be usedto present the tasks, or the prioritized tasks, to the user, and toenable the users to select an operation to be performed on a task. Inthe illustrated embodiment, the applications 208 include a calendarapplication 242, an intelligent virtual assistant 244, a collaborativeapplication 246, one or more plug-ins 248 for an application, and aportal 250. The tasks can be presented to a user on one or more of theapplications. An example collaborative application 246 is MICROSOFTTEAMS and an example intelligent virtual assistant is MICROSOFT CORTANA.Additional or different applications may be used in other embodiments.In some embodiments, the portal 250 can include one or more applicationsthat enable a user to login with his or her credentials and view theprioritized tasks. Example portal applications include, but are notlimited to, an electronic mail application and a calendar application.

In some embodiments, the ML algorithms 212 are used to determine,prioritize, and/or perform operations on tasks prior to the start of areporting period. For example, the reporting period can be a period oftime when a user is on vacation and is out of the office. Thus, in someembodiments, the ML algorithms 212 are used to determine, prioritize,and/or perform operations on the tasks before the vacation.

The reporting algorithms 252 are used to provide a summary to the userat the end of the reporting period (e.g., when the user returns to theoffice from the vacation). The reporting algorithms 252 can include a MLdata retrieval model 254 and a ML ranking model 256. The data retrievalmodel 254 may be used to retrieve data associated with the tasks duringthe reporting period. For example, the data retrieval model 254 cancollect data associated with new tasks that were created during thereporting period, tasks that were deferred prior to the time period,tasks that were rescheduled prior to the time period, and/or tasks thatwere delegated prior to the time period.

The ML ranking model 256 can be similar to the ML ranking model 214. TheML ranking model 256 may be used to determine, or determine andprioritize, new tasks, tasks that are due at the end of the reportingperiod and/or that are due within a given time period after thereporting period, and/or are overdue at the end of the reporting period.In some embodiments, only one ML ranking model is used to determine thetasks, and possible prioritize tasks, before and after the reportingperiod.

The notification algorithm 258 generates task notifications 260 for thetasks determined before and after the given time period. The tasknotifications 260 can be presented in a user interface of a particularapplication, such as one or more of the applications 208. Additionallyor alternatively, the task notifications may be sent to other devicesassociated with the user, such as a tablet or a mobile phone (see 1906and 1908 in FIG. 19 ).

The block diagram in FIG. 2 is an example of a system operable toprovide assistance in task completion. Other embodiments can omit, add,or modify the blocks. For example, the machine learning (ML) models 206can include fewer ML models, different ML models, or additional MLmodels. Similarly, the data storage 240 may store different types ofdata that can be used by the task assistant 202.

FIG. 3 is an example relationship graph that can be used to determineone or more people associated with a user. As described earlier, thepeople can be determined, for example, from one or more contact lists,senders and recipients of electronic communications, calendar entries,reminders, and/or teams the user is associated with in a collaborativeapplication. The relationship graph 300 may be used by the peopleunderstanding model 228 when the task assistant 202 is analyzing one ormore of the PIP data 221, 223, 225, 227 to determine people associatedwith the user based on a topic or task.

In the illustrated embodiment, the user 302 is linked or associateddirectly with users 304, 306, 308, 310 for a particular topic or task.Users 312, 314 are associated indirectly with the user 302. The user 312is associated with the user 302 through user 310 and the user 314 isassociated with the user 302 through user 304. Because the users 304,306, 308, 310 are connected or related to the user 302 directly, thetasks associated with the user 302 and at least one of the users 304,306,308, 310 may be ranked higher than the tasks that include users 312,314. Additionally or alternatively, the users 304, 306, 308, 310 can beidentified first (e.g., considered more important) compared to the users312, 314 when the task assistant is performing an operation associatedwith a task. For example, in a non-limiting embodiment, the taskassistant may delegate a task associated with the user 302 to user 304,user 306, user 308, or user 310 instead of the users 312, 314.

Other types of relationship graphs may be created, updated, and used forthe subject understanding model 230, the non-semantic ranker model 232,the extraction model 234, the enterprise structure model 236, and/or theimportance and delegation model 238. In one embodiment, a globalrelationship graph may be generated for an entity that includes allrelationships associated with that entity. An entity may be a user, aproject, a team, a company, and the like.

FIG. 4 is a flowchart of an example method of providing task assistance.In some implementations, the tasks can be personal tasks, tasksassociated with work, or a combination thereof. Task assistance can beprovided in a variety of situations. For example, a user can use taskassistance for a given period of time, such as at the start of a workweek or every day. Additionally or alternatively, task assistance may beprovided prior to and/or after a time period when the user is/wasunavailable (e.g., on vacation).

Initially, as shown in block 400, the task assistant is enabled.Activation of the task assistant can occur in a variety of ways. In oneembodiment the task assistant can detect or infer a user will be out ofthe office and responsively provide task assistance. For example, thetask assistant can analyze the contents of one or more electroniccommunications sent to, and/or received by, the user to determine theuser will be out of the office (e.g., on vacation) for a given period oftime. The electronic communications may provide information about thetime period the user will be out of the office (the reporting period),such as flight information, hotel reservations, the location and datesof a meeting or seminar, and the like. Additionally or alternatively,the task assistant can analyze the user's calendar and contents of theevents on the calendar and detect or infer the user will be out of theoffice.

In another embodiment, a user can enable the task assistant manually.For example, the user can select an icon or a graphical control elementpresented in a user interface to activate task assistance. In someinstances, the task assistant can be activated via a menu selection,taskbar, or a keyboard shortcut. In yet another embodiment, the taskassistant may be activated through a settings or user preference menu.The settings menu can enable a user to select when (e.g., a particularday or a select period of time) and how often (e.g., one time orrecurring) the task assistant is to operate, and the time period to bereviewed (e.g., the reporting period). For example, a user may want thetask assistant to determine his or her upcoming tasks every day or everyMonday. The settings menu can be used to schedule such operations.

Next, as shown in block 402, the task assistant can analyze the PIP dataassociated with the user's calendar application and the contentassociated with events on the calendar. The PIP data includes the eventsand the content associated with each event. By way of example only, thecontent associated with an event can be other users associated with theevent, the subject of the event, the date and time of the event, and anyattachments to the event (e.g., documents). Based on the analysis, thetask assistant determines the upcoming tasks, pending tasks, and/ortasks due during the reporting period.

In some instances, the task assistant may also analyze the PIP dataassociated with an electronic reminder application (block 404). The PIPdata includes, but is not limited to, the reminders and the contentassociated with each reminder. By way of example only, the content caninclude other users associated with a reminder, the subject of thereminder, the deadline associated with the reminder, and any attachmentsto the reminder (e.g., documents). Based on the analysis, the taskassistant determines the upcoming tasks, pending tasks, and/or tasks dueduring the reporting period.

Additionally or alternatively, the task assistant can analyzes the PIPdata associated with one or more electronic communication applications(block 406). The PIP data includes, for example, the electroniccommunications received and sent by the user and the content associatedwith the electronic communications. The content may include the messagesin the body of the electronic communications, the dates and times of theelectronic communications, other recipients to the electroniccommunications, the subject, and any attachments to the electroniccommunications. Based on the analysis, the task assistant determines theupcoming tasks, pending tasks, and/or tasks due during the reportingperiod.

In some embodiments, the task assistant may analyze other electronicdata at block 408. For example, the PIP data associated with otherapplications, such as a collaborative application, a notes application,images, video, and the like may be analyzed by the task assistant todetermine the tasks associated with the reporting period. Additionallyor alternatively, the task assistant may review the tasks associatedwith additional time periods relative to the reporting period (block410). For example, the task assistant may consider the tasks associatedwith the week before the reporting period.

Based on the analysis or analyses, the task assistant determines thetasks for a user during the reporting period (block 412). A taskassistant can perform some or all of the blocks 402, 404, 406, 408, 410when determining tasks. For example, the task assistant may performblocks 402 and 404 to determine a user's tasks in a reporting period.

Based on the context of the task assistance, the tasks associated withthe user may be prioritized at block 414. The context of the taskassistance can include, for example, the reporting period, the duedates, and other users associated with the tasks. The prioritized taskscan then be provided to an output device for perception by the user(block 416). For example, the prioritized tasks can be displayed on adisplay screen. One or more options for each prioritized task may alsobe presented. In some aspects, a user can be presented with one or moreoptions for some or all of the prioritized tasks. For example, one ormore graphical control elements can be presented to the user for atleast one prioritized task that enable the user to reschedule, delegate,defer, and/or cancel the identified tasks. In some embodiments, avirtual assistant may present the option(s) and the operations bygenerating an audio output.

In one embodiment, the prioritized tasks, and optionally the one or moreoptions, can be displayed in a user interface. The user interface may bea user interface of an application, such as a calendar application, areminder application, an email application, a collaborative application,or a unified communications application. Alternatively, the userinterface can be a panel that is separate from an application userinterface.

FIG. 5 depicts an urgent-important matrix that can be used to determinepriority. Other embodiments can determine priority using a differenttechnique or techniques. In one embodiment, the tasks, communications,reminders, and the like in quadrant 500, 502, and 504 are tasks that thetask assistant may identify as tasks the user should complete as soon aspossible (e.g., before a vacation). The tasks that fall in quadrant 500may also be tasks the user can monitor or allow interruptions (e.g.,emails, notifications) during a given period of time (e.g., while theuser is on vacation). In some instances, the task assistant can notifythe user about new tasks associated with quadrants 500, 502, 504 afterthe given period of time (e.g., the user returns from the vacation).Other embodiments can perform these actions for tasks in fewer quadrants(e.g., quadrants 500, 502). Additionally or alternatively, a user mayspecify which quadrants the task assistant is to operate on or monitor.

FIG. 6 illustrates an example graphical user interface showingprioritized tasks. The user interface 600 can include a graphicalcontrol element 602, that when selected by a user, causes the taskassistant to determine tasks and generate a list of tasks 604. Althoughfour tasks are shown in the list of tasks 604, other embodiments caninclude any number of tasks, including zero tasks.

The list of tasks 604 are displayed in a pane 606 of the user interface600. In some embodiments, a second pane 608 may also be displayed in theuser interface 600. The user interface 600 can be associated with aparticular application, such as an electronic communicationsapplication, a calendar application, and the like. Thus, the second pane608 may present data associated with the particular application. Forexample, when the application is an electronic communicationsapplication, such as an electronic mail application, the second pane 608can display multiple electronic messages or a particular electronicmessage.

The representative tasks 610, 612, 614, 616 relate to a first to-do orreminder (task 610), a meeting (task 612), an electronic communication(task 614), and a second reminder (task 616). In one embodiment, thetasks 610, 612, 614, 616 are listed in no particular order, althoughother embodiments are not limited to this configuration. Additionally,the tasks 610, 612, 614 are interactive notifications in which a usercan select a control element associated with one or more operations. Forexample, the task 610 is depicted with three control elements 618, 620,622. When the user completes the task 610, the user can select the“Done” control element 618. In such embodiments, the task assistant mayremove the task 610 from the list of tasks 604, modify the task 610 toindicate the task 610 is completed, and/or add the word “Done” or“Completed” to the text of the task 610. For example, the task 610 maybe greyed out or moved to the end of the list of tasks 604. Otherembodiments can perform a different operation when a user indicates atask is completed.

If the user wants to defer the task 610, the user may select the “Defer”control element 620. In response to the selection, the task assistantdefers the task and adjusts the list of tasks. For example, the taskassistant may remove the task from the list of tasks. Alternatively, thetask assistant can modify the task to indicate the task is deferred oron hold. For example, the task may be greyed out, moved to a differentposition in the list of tasks (e.g., at the end of the list), and/or thewords “On Hold” can be added to the text in the task. Other embodimentscan perform a different operation when a task is deferred.

If the user wants to delegate the task 610, the user may select the“Delegate” control element 622 (shown as “Del.”). In response to theselection, the task assistant can determine one or more other users todelegate the task to (a delegatee). The task assistant can analyze thesubject of the task, the users associated with the subject of the task,any other users associated with the subject of the task, as well asother factors when determining the one or more delegatees. In oneembodiment, the ML processing device 210 executing the ML delegatingalgorithm 218 (FIG. 2 ) can perform the delegation operation. An examplemethod of delegating a task is described in more detail in conjunctionwith FIG. 6 .

The task 612 relates to a future meeting and is shown with three controlelements 622, 624, 626. If the user wants to delegate the task, the usermay select the “Delegate” control element 622 (shown as “Del.”). If theuser wants to send an electronic communication regarding the task 612,such as an electronic mail message, the user can select the “SendElectronic Communication” control element 624 (shown as “Send EC”). Inresponse to the selection, an electronic communication application maybe launched to enable the user to draft and send the electroniccommunication. In one embodiment, the electronic communication isdisplayed in the second pane 608. In another embodiment, the electroniccommunication is presented in a separate user interface.

If the user wants to reschedule the task 612, the user may select the“Reschedule” control element 626 (shown as “Resch.”). When selected, thetask assistant may analyze factors such as the subject of the meeting,any other attendees and their associated calendars, and any other usersassociated with the subject of the meeting to determine one or morealternative times and dates for the meeting. In one embodiment, anotification may be sent to the meeting organizer indicating the userhas requested the meeting be rescheduled and provide the one or morealternative meeting times. In another embodiment, the task assistant cancause a user interface to be presented to the user with the one or morealternative meeting times. Based on a selection of a particular meetingtime, the task assistant may reschedule the meeting. In one embodiment,the ML processing device 210 executing the ML rescheduling algorithm 216(FIG. 2 ) can perform the rescheduling operation.

The task 614 relates to an electronic communication and is shown withthree control elements 622, 624, 628. If the user wants to send anelectronic communication regarding the task 614, such as an electronicmail message, the user can select the “Send Electronic Communication”control element 624 (shown as “Send EC”). If the user wants to delegatethe task 614, the user may select the “Delegate” control element 622(shown as “Del.”).

If the user wants to cancel the task 614, the user can select the“Cancel” control element 628. When the control element 628 is selected,the task assistant may cancel the task 614 and remove the task 614 fromthe list of tasks 604. Alternatively, the task assistant can cancel thetask 614 and modify the task 614 to indicate the task 614 is canceled.For example, the task 614 may be greyed out, moved to the end of thelist of tasks 604, and/or the word “Canceled” can be added to the textin the task 614. Other embodiments can perform a different operationwhen a user indicates a task is completed.

The task 616 relates to a reminder and does not include any controlelements. In one embodiment, the task assistant has associated the task616 to a lower priority (e.g., medium priority), although this is notrequired. Additionally or alternatively, one or more control elementsmay be displayed in response to a user selecting the task 616 (e.g.,double clicking on the task 616).

In some embodiments, the task assistant can attach an attachment to atask. For example, as shown in FIG. 6 , a document attachment 630related to the subject of the task 610 is attached to the task 610 andan electronic message (EM) attachment 632 related to the task 614 isattached to the task 614. The document attachment 628 can be thedocument itself or a pointer or link to the document. Similarly, the EMattachment 630 may be the electronic message itself or a pointer or linkto the electronic message.

The task assistant can include one or more headers 634, 636 in the listof tasks 604. For example, as shown in FIG. 6 , the header 634identifies the tasks below the header 634 as “High Priority.” Similarly,the header 636 identifies the tasks below the header 636 as “LowerPriority.” Other headers can be used in other embodiments.

FIG. 7 is a flowchart of a method of delegating a task. Initially, atask assistant receives a request to delegate a task at block 700. Inone embodiment, the request is submitted to the task assistant inresponse to a user selecting a control element (e.g., control element622 in FIG. 6 ). Alternatively, a request to reschedule a task may besubmitted differently, such as via a menu selection (e.g., a drop-downmenu), taskbar, or a keyboard shortcut.

Next, as shown in block 702, the task assistant analyzes the task anddata associated with the task. For example, the task assistant cananalyze the subject of the task, other users associated with the tasksuch as one or more users on the same project or team and/or a manager,a deadline for the task, any attachments associated with the task, andthe like. Based on the analysis, the task assistant can determine one ormore delegatees for the task (block 704). Information associated withthe delegatee(s), such as a name, a phone number, an email address, areprovided to an output device at block 706. In one embodiment, theinformation associated with the one or more delegatees is presented on adisplay. In another embodiment, a virtual assistant may present theinformation, for example, by generating an audio output.

A selection of a delegatee may be received at block 708. For example,the information associated with the delegatee(s) can be displayed in auser interface with a user interface selection control that enables theuser to select a particular delegatee. At block 710, the task assistantdelegates the task to the delegatee. A notification indicating thedelegation of the task may be sent to the delegatee and possibly toother users at block 712. For example, a notification can be sent to thedelegatee and his or her manager, or to the delegatee and the manager ofthe user (the delegator).

After the task is delegated, the task assistant may modify the list oftasks (block 714). For example, the task assistant may remove the taskfrom the list of tasks. Alternatively, the task assistant can modify thetask to indicate the task is delegated. For example, the task may begreyed out, moved to the end of the list of tasks, and/or the word“Delegated” can be added to the text in the task. Other embodiments canperform a different operation when a task is delegated.

Blocks 706 and 708 are optional and may be omitted in other embodiments(indicated by dashed lines). For example, a task assistant may determinea delegatee and automatically delegate the task to the delegatee withoutany user interaction or input.

FIG. 8 depicts an example graphical user interface for delegating atask. In some aspects, the panel 800 can be used to present one or moredelegatees at block 706 in FIG. 6 . The panel 800 lists one or moresuggested delegatees and may be presented in a user interface 802. Threenamed delegatees 804, 806, 808 are shown in FIG. 8 , although otherembodiments are not limited to three delegatees. A user interfaceselection control 810, 812, 814 is associated with each suggesteddelegatee 804, 806, 808, respectively. The user interface selectioncontrols 810, 812, 7814 enable the user to select a particular delegateefor a task.

In some instances, a dialog or entry box 816 and a user interfaceselection control 818 for the dialog box 816 are included in the panel800. In one aspect, the user can enter the name of a person the userwants to delegate the task to in the dialog box 816 and select the userinterface selection control 818 to submit the name of the delegatee tothe task assistant. Although radio buttons are shown in FIG. 8 , otherembodiments are not limited to this configuration. Other user interfaceselection controls can be used, such as, for example, a drop-down menu,checkboxes, and switches. In some instances, the computing device and/orthe task assistant can be configured to receive an audio response (e.g.,a verbal input from the user) or text response that selects one of theoptions.

FIG. 9 is a flowchart of a method of rescheduling a task. Initially, atask assistant receives a request to reschedule a task at block 900. Inone embodiment, the request is submitted to the task assistant inresponse to a user selecting a control element (e.g., control element626 in FIG. 6 ). Alternatively, a request to reschedule a task may besubmitted differently, such as via a menu selection (e.g., a drop-downmenu), taskbar, or a keyboard shortcut.

Next, as shown in block 902, the task assistant analyzes the task anddata associated with the task. For example, the task assistant cananalyze the subject of the task, other users associated with the tasksuch as one or more users on the same project or team and/or a manager,a deadline for the task, any attachments associated with the task, otherattendees when the task is a meeting, and the like. Based on theanalysis, the task assistant can determine one or more alternative timesfor the task (block 904). For example, if the task is associated with ameeting, the task assistant can determine one or more alternative datesand times for the meeting based at least in part on an analysis of theelectronic calendar associated with each attendee. Alternatively, iftask is a reminder, a deadline associated with the task can be revisedto a different date.

The one or more alternative dates are provided to an output device atblock 906. In one embodiment, the alternative date(s) is presented on adisplay. In another example embodiment, a virtual assistant may presentthe information by generating an audio output.

A selection of an alternative date (and possibly time) may be receivedat block 908. For example, the alternative date(s) (and possibly times)can be displayed in a user interface with a user interface selectioncontrol that enables the user to select a particular date. At block 910,the task assistant reschedules the task and/or sends a notification toone or more users. The notification can be sent to the user and/or toother users associated with the task. In some embodiments, when the taskis a meeting, the notification may be sent to a meeting organizer so theorganizer can reschedule the meeting. The notification may include theone or more alternative dates and times.

After the task is rescheduled, the task assistant may adjust the list oftasks (block 912). For example, the task assistant may remove the taskfrom the list of tasks. Alternatively, the task assistant can modify thetask to indicate the task is rescheduled. For example, the task may begreyed out, moved to a different position in the list of tasks, and/orthe word “Rescheduled” can be added to the text in the task. Otherembodiments can perform a different operation when a task isrescheduled.

Blocks 906 and 908 are optional and may be omitted in other embodiments(indicated by dashed lines). For example, a task assistant may determinean alternative date (and possibly time) and automatically reschedule thetask without any user interaction or input.

FIG. 10 depicts an example graphical user interface that may bepresented when a task is rescheduled. In some aspects, the panel 1000can be used to present alternative time(s) at block 906 in FIG. 9 . Inthe illustrated embodiment, the panel 1000 lists one or more alternativedates and times and is presented in a user interface 1002. Threealternative dates and times 1004, 1006, 1008 are displayed, along withuser interface selection controls 1010, 1012, 1014, respectively, thatenable the user to select one of the alternatives.

In some embodiments, the notification panel 1000 can also include aselection 1016 and a user interface selection control 1018 that rejectsthe alternative times and maintains the originally scheduled time.Although radio buttons are shown in FIG. 10 , other embodiments are notlimited to this configuration. Other user interface selection controlscan be used, such as, for example, a drop-down menu, checkboxes, andswitches. In some instances, the system can be configured to receive anaudio response (e.g., a verbal input from the user) or text responsethat selects one of the options.

FIG. 11 is a flowchart of a method of deferring a task. Initially, asshown in block 1100, a task assistant receives a request to defer orplace a hold on a task. In one embodiment, the request is submitted tothe task assistant in response to a user selecting a control element(e.g., control element 620 in FIG. 6 ). Alternatively, a request todefer or place a hold on a task may be submitted differently, such asvia a menu selection (e.g., a drop-down menu), taskbar, or a keyboardshortcut.

Next, as shown in block 1102, the task assistant adjusts the list oftasks. For example, the task assistant may remove the task from the listof tasks. Alternatively, the task assistant can modify the task toindicate the task is deferred or on hold. For example, the task may begreyed out, moved to a different position in the list of tasks (e.g., atthe end of the list), and/or the words “On Hold” can be added to thetext in the task. Other embodiments can perform a different operationwhen a task is deferred.

A notification indicating the deferral of the task may be sent to one ormore users at block 1104. For example, a notification can be sent to amanager or to other users associated with the task. Block 1104 isoptional and can be omitted in other embodiments.

FIG. 12 is a flowchart of a method of canceling a task. Initially, asshown in block 1200, a task assistant receives a request to cancel atask. In one embodiment, the request is submitted to the task assistantin response to a user selecting a control element (e.g., control element628 in FIG. 6 ). Alternatively, a request to defer or place a hold on atask may be submitted differently, such as via a menu selection (e.g., adrop-down menu), taskbar, or a keyboard shortcut.

Next, as shown in blocks 1202 and 1204, the task assistant cancels thetask and adjusts the list of tasks. For example, the task assistant mayremove the task from the list of tasks. Alternatively, the taskassistant can modify the task to indicate the task is canceled. Forexample, the task may be greyed out, moved to a different position inthe list of tasks (e.g., at the end of the list), and/or the word“Canceled” can be added to the text in the task. Other embodiments canperform a different operation when a task is deferred.

A notification indicating the cancellation of the task may be sent toone or more users at block 1206. For example, a notification can be sentto a manager or to other users associated with the task. Block 1106 isoptional and can be omitted in other embodiments.

FIG. 13 is a flowchart of a method of providing a summary report at theend of a reporting period. In some embodiments, the task assistant maygenerate a summary report on one or more tasks in the list of tasks atthe end of the reporting period. For example, the task assistant maygenerate a summary report at the end of a vacation when the user returnsto the office.

Initially, as shown in block 1300, the task assistant may detect the endof the reporting period. For example, the task assistant can analyze theuser's calendar to determine the next event or, if the user is out ofthe office (e.g., on vacation), if the user has indicated a return datein the calendar. Additionally or alternatively, the task assistant mayreview one or more electronic communications to determine the end of thereporting period.

Based on a detected return date, the task assistant can analyze thetask(s) in the list of tasks provided to the user at the start of thereporting period. The task assistant may determine the status of eachtask in the list. In some embodiments, the task assistant may alsodetermine any new tasks associated with the user that were createdduring the reporting period (block 1304).

Next, as shown in block 1306, the task assistant can generate a summaryreport indicating or summarizing the status of the task(s). When thetask assistant determines a new task, the new task may also be includedin the report. The summary report can be provided to an output device,such as a display. In some embodiments, a virtual assistant may presentthe summary report and any new tasks via an audio output.

FIG. 14 depicts an example graphical user interface that may present asummary report. In the illustrated embodiment, the graphical userinterface 1400 includes a pane 1402 that displays a section 1404 forcompleted tasks, a section 1406 for tasks in process, and, when newtasks are created during the reporting period, a section 1408 for newtasks. Other embodiments can include fewer or additional sections.Additionally or alternatively, the sections can display other headingsfor different status reports.

Like the graphical user interface shown in FIG. 6 , a second pane 1410may also be displayed in the user interface 1400. The user interface1400 can be associated with a particular application, such as anelectronic communications application, a calendar application, and thelike. Thus, the second pane 1410 may present data associated with theparticular application.

The section 1404 for completed tasks includes a first task 1412 and asecond task 1414, and the section 1406 for tasks in process includes onetask 1416. In some embodiments, the section 1408 for new tasks canconfigure the new task 1418 as an interactive task that includes one ormore control elements. In the illustrated embodiment, the task 1410 isdepicted with three control elements 620, 622, 624. Additionally, insome implementations, an electronic message (EM) attachment 1420 relatedto the task 1418 may be attached to the task 1418.

FIG. 15 is a flowchart of an example first method of operating a taskassistant. Initially, as shown in block 1500, activation of the taskassistant is detected. As described previously, a user can enable thetask assistant manually using a graphical control element presented in auser interface, a menu selection, taskbar, a keyboard shortcut, or asettings or user preference menu. In some embodiments, the taskassistant can detect or infer a user will be out of the office andresponsively provide task assistance.

Next, as shown in block 1502, one or more tasks is determined for areporting period. The reporting period can be specified by a user orinferred by the task assistant. For example, as previously described,the task assistant can infer a user will be out of the office for agiven period of time, and the given period of time may be the reportingperiod.

The identified tasks may be prioritized at block 1504 based on thereporting period and/or the content associated with the tasks. The PIPdata associated with one or more calendars as well as the content of theevents on the calendar(s) can be analyzed to prioritize the tasks.Additionally or alternatively, the PIP data associated with one or moreelectronic calendars and the content of the electronic communicationsmay be reviewed to prioritize the tasks. In some implementations, thePIP data associated with reminders and the content associated with thereminders can be reviewed to prioritize the tasks.

Next, as shown in block 1506, the tasks or the prioritized tasks areprovided to an output device, or are caused to be provided to an outputdevice. For example, the tasks, the prioritized tasks, or a portion ofthe task/prioritized tasks can be displayed at a display screen.Additionally or alternatively, the tasks, the prioritized tasks, or aportion of the task/prioritized tasks may be provided to a virtualassistant. The virtual assistant can generate an audio output that isoutput by a speaker. For example, the virtual assistant may “read” thetasks/prioritized tasks.

One or more operations may be performed on a task at block 1508. Theoperations can include delegating a task, canceling a task, reschedulinga task, deferring a task, and/or indicating a task is completed. In someembodiments, a summary report may be generated and presented at the endof the reporting period (block 1510). The summary report can include astatus of each task, any new tasks that were assigned or associated withthe user during the reporting period, and an indication of the tasksthat were rescheduled, delegated, canceled, and/or deferred.

FIG. 16 is a flowchart of an example second method of operating a taskassistant. The method is described in conjunction with a user going on avacation. However, other embodiments are not limited to thisimplementation. The method can be used in situations where the user willbe unavailable for a given period of time. For example, the user may beon a business trip or out of the office on personal time.

Initially, as shown in block 1600, a determination is made as to whetherthe task assistant has detected the user will be on vacation (e.g.,detects an upcoming vacation). If not, the method waits at block 1600.When the task assistant determines the user will be on vacation, theprocess passes to block 1602 where the tasks associated with the userare determined based on the reporting period (e.g., the vacation timeperiod). The tasks can be determined using the techniques describedherein.

Next, as shown in block 1604, the task assistant may prioritize thetasks based on the reporting period. In some implementations, the taskassistant prioritizes the tasks based on the content associated with thetasks as well as the reporting period. Block 1604 is optional and can beomitted in other embodiments.

The tasks are provided to an output device at block 1606. One or moreoperations may be performed on a task (block 1608). For example, a taskcan be rescheduled or delegated. Alternatively, a task may be canceledor deferred. If the user completes the task, the user can indicate thetask is completed.

In some embodiments, the task assistant can alert the user to new ormodified tasks while the user is on vacation (block 1610). For example,the user may be assigned a new task, and based on the task and thecontent associated with the task, the task assistant can determine thenew task has a high priority. The task assistant may generate anelectronic communication, such as a notification, to alert the user tothe new task. In some instances, the task assistant may also cause anaudible alert to be provided to a speaker.

Additionally or alternatively, a task may be modified while the user ison vacation. For example, the priority associated with the task maychange (e.g., increase or decrease), or the actions associated with thetask can change. The task assistant may generate an electroniccommunication, such as a notification, to alert the user to the newtask. In some instances, the task assistant may also cause an audiblealert to be provided to a speaker.

A determination is then made at block 1612 as to whether the taskassistant has determined the user has returned from vacation. The taskassistant may detect the user has returned from vacation based onlocation data associated with the user or the computing deviceassociated with the user. Additionally or alternatively, the taskassistant may determine the user has returned from vacation by analyzingthe PIP data associated with one or more applications (e.g., calendarapplication, electronic communication application). In some embodiments,the user may specify when he will return to the office, or the user cansubmit an input (e.g., a selection of a control element) to instruct thetask assistant that the user has returned from vacation. When the taskassistant detects the user has returned from the vacation, the processcontinues at block 1614 where a summary report is generated and providedto an output device.

FIGS. 17-19 and the associated descriptions provide a discussion of avariety of operating environments in which aspects of the disclosure maybe practiced. However, the devices and systems illustrated and discussedwith respect to FIGS. 14-16 are for purposes of example and illustrationand are not limiting of a vast number of electronic deviceconfigurations that may be utilized for practicing aspects of thedisclosure, as described herein.

FIG. 17 is a block diagram illustrating physical components (e.g.,hardware) of an electronic device 1700 with which aspects of thedisclosure may be practiced. In a basic configuration, the electronicdevice 1700 may include at least one processing device 1702 and a systemmemory 1704. Any suitable processing device 1702 can be used. Forexample, the processing device 1702 may be a microprocessor, anapplication specific integrated circuit, a field programmable gatearray, or combinations thereof.

Depending on the configuration and type of the electronic device 1700,the system memory 1704 may comprise, but is not limited to, volatilestorage (e.g., random access memory), non-volatile storage (e.g.,read-only memory), flash memory, or any combination of such memories.The system memory 1704 may include a number of program modules and datafiles, such as an operating system 1706 and one or more PIP applicationsand PIP data 1708. While executing on the processing device 1702, thePIP application(s) generate and update the PIP data.

In some embodiments, the electronic device 1200 can include a machinelearning processing device 1710 that executes a task assistant program1711. The machine learning processing device 1710 can be any suitabletype of processing device. In a non-limiting example, the machinelearning processing device 1710 may be a central processing unit, amicroprocessor, a field programmable gate array, an application specificintegrated circuit, a graphic processing unit, or combinations thereof.

While executing on the machine learning processing device 1710, the taskassistant application 1711 may perform and/or cause to be performedprocesses including, but not limited to, the aspects as describedherein. The machine learning processing device 1710 and the taskassistant program 1711 can be any suitable type of machine learning orartificial intelligence that learns over time and improves the taskassistant processes. For example, the task assistant application 1711,executing on the machine learning processing device 1710, can learn theuser's preferred times for meetings, identify which attendees toconsider first when delegating a task, improve the process ofprioritization based on the user's preferences and interactions with thetask assistant, and the like. Using the learned aspects of taskassistance, over time the task assistant application 1711 and machinelearning processing device 1710 may become more efficient and effectivein identifying tasks, prioritizing tasks, and/or performing operationson the tasks.

The operating system 1706, for example, may be suitable for controllingthe operation of the electronic device 1700. Furthermore, embodiments ofthe disclosure may be practiced in conjunction with a graphics library,other operating systems, or any other application program and is notlimited to any particular application or system. This basicconfiguration is illustrated in FIG. 17 by those components within adashed line 1712.

The electronic device 1700 may have additional features orfunctionality. For example, the electronic device 1700 may also includeadditional data storage devices (removable and/or non-removable) suchas, for example, magnetic disks, optical disks, or tape. Such additionalstorage is illustrated in FIG. 17 by a removable storage device 1714 anda non-removable storage device 1716.

The electronic device 1700 may also have one or more input device(s)1718 such as a keyboard, a trackpad, a mouse, a pen, a sound or voiceinput device, a touch, force and/or swipe input device, etc. The outputdevice(s) 1720 such as a display, speakers, a printer, etc. may also beincluded. The aforementioned devices are examples and others may beused. One or more location devices 1722 may be included in theelectronic device 1700. For example, the electronic device 1700 caninclude a global positioning device.

The electronic device 1700 may include one or more communication devices1724 allowing communications with other electronic devices 1726.Examples of suitable communication devices 1724 include, but are notlimited to, radio frequency (RF) transmitter, receiver, and/ortransceiver circuitry, universal serial bus (USB), parallel, and/orserial ports.

The term computer-readable media as used herein may include computerstorage media. Computer storage media may include volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information, such as computer readableinstructions, data structures, or program modules.

The system memory 1704, the removable storage device 1714, and thenon-removable storage device 1716 are all computer storage mediaexamples (e.g., memory storage or storage device). Computer storagemedia may include RAM, ROM, electrically erasable read-only memory(EEPROM), flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other article of manufacture which can be used to storeinformation and which can be accessed by the electronic device 1700. Anysuch computer storage media may be part of the electronic device 1700.Computer storage media does not include a carrier wave or otherpropagated or modulated data signal.

Communication media may be embodied by computer readable instructions,data structures, program modules, or other data in a modulated datasignal, such as a carrier wave or other transport mechanism, andincludes any information delivery media. The term “modulated datasignal” may describe a signal that has one or more characteristics setor changed in such a manner as to encode information in the signal. Byway of example, and not limitation, communication media may includewired media such as a wired network or direct-wired connection, andwireless media such as acoustic, radio frequency (RF), infrared, andother wireless media.

Furthermore, embodiments of the disclosure may be practiced in anelectrical circuit comprising discrete electronic elements, packaged orintegrated electronic chips containing logic gates, a circuit utilizinga microprocessor, or on a single chip containing electronic elements ormicroprocessors. For example, embodiments of the disclosure may bepracticed via a system-on-a-chip (SOC) where each or many of thecomponents illustrated in FIG. 17 may be integrated onto a singleintegrated circuit. Such an SOC device may include one or moreprocessing units, graphics units, communications units, systemvirtualization units and various application functionality all of whichare integrated (or “burned”) onto the chip substrate as a singleintegrated circuit.

When operating via an SOC, the functionality, described herein, withrespect to the capability of client to switch protocols may be operatedvia application-specific logic integrated with other components of theelectronic device 900 on the single integrated circuit (chip).Embodiments of the disclosure may also be practiced using othertechnologies capable of performing logical operations such as, forexample, AND, OR, and NOT, including but not limited to mechanical,optical, fluidic, and quantum technologies. In addition, embodiments ofthe disclosure may be practiced within a general purpose computer or inany other circuits or systems.

FIGS. 18A and 18B illustrate a mobile electronic device 1800, forexample, a mobile telephone, a smart phone, wearable computer (such as asmart watch), a tablet computer, a laptop computer, and the like, withwhich embodiments of the disclosure may be practiced. With reference toFIG. 18A, one aspect of a mobile electronic device 1800 for implementingthe aspects described herein is illustrated.

In a basic configuration, the mobile electronic device 1800 is ahandheld computer having both input elements and output elements. Themobile electronic device 1800 typically includes a display 1802 and oneor more input buttons 1804 that allow the user to enter information intothe mobile electronic device 1800. The display 1802 of the mobileelectronic device 1800 may also function as an input device (e.g., adisplay that accepts touch and/or force input).

If included, an optional side input element 1806 allows further userinput. The side input element 1806 may be a rotary switch, a button, orany other type of manual input element. In alternative aspects, mobileelectronic device 1800 may incorporate more or less input elements. Forexample, the display 1802 may not be a touch screen in some embodiments.In yet another alternative embodiment, the mobile electronic device 1800is a portable phone system, such as a cellular phone. The mobileelectronic device 1800 may also include an optional keypad 1808.Optional keypad 1808 may be a physical keypad or a “soft” keypadgenerated on the touch screen display.

In various embodiments, the output elements include the display 1802 forshowing a graphical user interface (GUI) of a PIP program, a visualindicator 1810 (e.g., a light emitting diode), and/or an audiotransducer 1812 (e.g., a speaker). In some aspects, the mobileelectronic device 1800 incorporates a vibration transducer for providingthe user with tactile feedback. In yet another aspect, the mobileelectronic device 1800 incorporates input and/or output ports, such asan audio input (e.g., a microphone jack), an audio output (e.g., aheadphone jack), and a video output (e.g., a HDMI port) for sendingsignals to or receiving signals from an external device.

FIG. 18B is a block diagram illustrating the architecture of one aspectof a mobile electronic device 1800. That is, the mobile electronicdevice 1800 can incorporate a system (e.g., an architecture) 1814 toimplement some aspects. In one embodiment, the system 1814 isimplemented as a “smart phone” capable of running one or moreapplications (e.g., browser, e-mail, calendaring, contact managers,messaging clients, games, media clients/players, diagramming, andsharing applications and so on). In some aspects, the system 1814 isintegrated as an electronic device, such as an integrated personaldigital assistant (PDA) and wireless phone.

One or more application programs 1816 may be loaded into the memory 1818and run on or in association with the operating system 1820. Examples ofthe application programs include phone dialer programs, e-mail programs,PIP programs, a task assistant program, word processing programs,spreadsheet programs, Internet browser programs, messaging programs, andso forth.

The system 1814 also includes a non-volatile storage area 1822 withinthe memory 1818. The non-volatile storage area 1822 may be used to storepersistent information that should not be lost when the system 1814 ispowered down.

The application programs 1816 may use and store information in thenon-volatile storage area 1822, such as PIP data, documents, or othermessages used by an email application, and the like. A synchronizationapplication (not shown) also resides on the system 1814 and isprogrammed to interact with a corresponding synchronization applicationresident on a host computer to keep the information stored in thenon-volatile storage area 1822 synchronized with correspondinginformation stored at the host computer.

The system 1814 has a power supply 1824, which may be implemented as oneor more batteries. The power supply 1024 may further include an externalpower source, such as an AC adapter or a powered docking cradle thatsupplements or recharges the batteries.

One or more location devices 1825 may be included in the system 1814.For example, the system 1814 can include a global positioning device.

The system 1814 may also include a radio interface layer 1826 thatperforms the function of transmitting and receiving radio frequencycommunications. The radio interface layer 1826 facilitates wirelessconnectivity between the system 1814 and the “outside world,” via acommunications carrier or service provider. Transmissions to and fromthe radio interface layer 1826 are conducted under control of theoperating system 1820. In other words, communications received by theradio interface layer 1826 may be disseminated to the applicationprograms 1816 via the operating system 1820, and vice versa.

The visual indicator 1810 may be used to provide visual notifications,and/or an audio interface 1828 may be used for producing audiblenotifications via an audio transducer (e.g., audio transducer 1812illustrated in FIG. 18A). In the illustrated embodiment, the visualindicator 1810 is a light emitting diode (LED) and the audio transducer1812 may be a speaker. These devices may be directly coupled to thepower supply 1824 so that when activated, they remain on for a durationdictated by the notification mechanism even though the processor 1830and other components might shut down for conserving battery power. TheLED may be programmed to remain on indefinitely until the user takesaction to indicate the powered-on status of the device.

The audio interface 1828 is used to provide audible signals to andreceive audible signals from the user (e.g., voice input such asdescribed above). For example, in addition to being coupled to the audiotransducer 1812, the audio interface 1828 may also be coupled to amicrophone to receive audible input, such as to facilitate a telephoneconversation. In accordance with embodiments of the present disclosure,the microphone may also serve as an audio sensor to facilitate controlof notifications, as will be described below.

The system 1814 may further include a video interface 1832 that enablesan operation of peripheral device 1834 (e.g., on-board camera) to recordstill images, video stream, and the like.

A mobile electronic device 1800 implementing the system 1814 may haveadditional features or functionality. For example, the mobile electronicdevice 1800 may also include additional data storage devices (removableand/or non-removable) such as, magnetic disks, optical disks, or tape.Such additional storage is illustrated in FIG. 18B by the non-volatilestorage area 1822.

Data/information generated or captured by the mobile electronic device1800 and stored via the system 1814 may be stored locally on the mobileelectronic device 1800, as described above, or the data may be stored onany number of storage media that may be accessed by the device via theradio interface layer 1826 or via a wired connection between the mobileelectronic device 1800 and a separate electronic device associated withthe mobile electronic device 1800, for example, a server-computingdevice in a distributed computing network, such as the Internet (e.g.,server computing device 1918 in FIG. 19 ). As should be appreciated suchdata/information may be accessed via the mobile electronic device 1800via the radio interface layer 1826 or via a distributed computingnetwork. Similarly, such data/information may be readily transferredbetween electronic devices for storage and use according to well-knowndata/information transfer and storage means, including electronic mailand collaborative data/information sharing systems.

As should be appreciated, FIG. 18A and FIG. 18B are described forpurposes of illustrating the present methods and systems and is notintended to limit the disclosure to a particular sequence of steps or aparticular combination of hardware or software components.

FIG. 19 is a block diagram illustrating a distributed system in whichaspects of the disclosure may be practiced. The system includes a PIPprogram 1902 in a general computing device 1904 (e.g., a desktopcomputer), a tablet computing device 1906, and/or a mobile computingdevice 1908. The general computing device 1904, the tablet computingdevice 1906, and the mobile computing device 1908 can each include thecomponents, or be connected to the components, that are shown associatedwith the electronic device 1700 in FIG. 17 or the mobile electronicdevice 1800 in FIGS. 18A-18B.

The general computing device 1904, the tablet computing device 1906, andthe mobile computing device 1908 are each configured to access one ormore networks (represented by network 1910) to interact with a PIP 1912and/or a task assistant program 1914 stored in one or more storagedevices (represented by storage device 1916) and executed on one or moreserver computing devices (represented by server computing device 1918).In some aspects, the server computing device 1918 can access and/orreceive various types of services, communications, documents andinformation transmitted from other sources, such as a web portal 1920,an electronic communications services 1922, directory services 1924,instant messaging and/or text services 1926, and/or social networkingservices 1928. In some instances, these sources may provide robustreporting, analytics, data compilation and/or storage service, etc.,whereas other services may provide search engines or other access todata and information, images, graphics, videos, document processing andthe like.

As should be appreciated, FIG. 19 is described for purposes ofillustrating the present methods and systems and is not intended tolimit the disclosure to a particular sequence of steps or a particularcombination of hardware or software components.

Aspects of the present disclosure, for example, are described above withreference to block diagrams and/or operational illustrations of methods,systems, and computer program products according to aspects of thedisclosure. The functions/acts noted in the blocks may occur out of theorder as shown in any flowchart. For example, two blocks shown insuccession may in fact be executed substantially concurrently or theblocks may sometimes be executed in the reverse order, depending uponthe functionality/acts involved.

The description and illustration of one or more aspects provided in thisapplication are not intended to limit or restrict the scope of thedisclosure as claimed in any way. The aspects, examples, and detailsprovided in this application are considered sufficient to conveypossession and enable others to make and use the best mode of claimeddisclosure. The claimed disclosure should not be construed as beinglimited to any aspect, example, or detail provided in this application.Regardless of whether shown and described in combination or separately,the various features (both structural and methodological) are intendedto be selectively included or omitted to produce an embodiment with aparticular set of features. Having been provided with the descriptionand illustration of the present application, one skilled in the art mayenvision variations, modifications, and alternative aspects fallingwithin the spirit of the broader aspects of the general inventiveconcept embodied in this application that do not depart from the broaderscope of the claimed disclosure.

1. A method, comprising: determining, by a computing device, tasksassociated with a user in a reporting period based on personalinformation program (PIP) data associated with an electronic calendarapplication, an electronic reminder application, an electronic contactsapplication, a collaborative application, or an electronic communicationapplication; determining, by the computing device, a priority of eachtask based on the reporting period and content associated with the taskto produce prioritized tasks; and causing at least a portion of theprioritized tasks to be provided to an output device.
 2. The method ofclaim 1, further comprising determining, by the computing device, adelegate for a task based on a request to delegate the task.
 3. Themethod of claim 1, further comprising determining, by the computingdevice, a reschedule date for a task based on a request to reschedulethe task.
 4. The method of claim 3, wherein the task comprises a meetingand the reschedule date is determined based on events in an electroniccalendar associated with the user and events in an electronic calendarassociated with one or more other attendees to the meeting.
 5. Themethod of claim 1, wherein: the reporting period comprises a time periodwhen the user will be unavailable; and the method further comprisesprior to determining the tasks associated with the user, determining, bythe computing device, the user will be unavailable during the reportingbased on the PIP data associated with the electronic calendarapplication, the electronic reminder application, the electroniccontacts application, the electronic collaborative application, or theelectronic communication application.
 6. The method of claim 5, whereinthe method further comprises determining, by the computing device, thereporting period has ended and the user is available based on locationdata associated with the user.
 7. The method of claim 1, wherein themethod further comprises determining, by the computing device, thereporting period has ended and the user is available based on the PIPdata associated with at least one of the electronic calendarapplication, the electronic reminder application, the electroniccontacts application, the electronic collaborative application, or theelectronic communication application.
 8. The method of claim 1, whereindetermining the tasks associated with the user in the reporting periodfurther comprises determining the tasks associated with the user in thereporting period based on tasks associated with a time period prior tothe reporting period.
 9. The method of claim 1, wherein causing the atleast the portion of the prioritized tasks to be provided to the outputdevice comprises causing the at least the portion of the prioritizedtasks to be displayed in a single user interface on a display screen.10. The method of claim 1, wherein the content associated with each taskcomprises one or more of: data associated with a structure of anorganization associated with the user; other users associated with thetask; one or more documents associated with the task; a deadlineassociated with the task; or a subject of the task.
 11. A system,comprising: a processing device; and a memory storing instructions, thatwhen executed by the processing device, cause the system to: determinetasks associated with a user in a reporting period based on personalinformation program (PIP) data associated with at least one of anelectronic calendar application, an electronic reminder application, anelectronic contacts application, an electronic collaborativeapplication, or an electronic communication application; determine apriority of the tasks based on the reporting period and contentassociated with each task to produce prioritized tasks; and cause theprioritized tasks to be provided to an output device.
 12. The system ofclaim 11, wherein the memory stores further instructions for causing thesystem to: determine a delegatee for a task based on a request todelegate the task; and determine a reschedule date for a task based on arequest to reschedule the task.
 13. The system of claim 11, wherein: thereporting period comprises a time period when the user will beunavailable; and the memory stores further instructions for causing thesystem to determine, prior to determining the tasks, the user will beunavailable during the reporting period based on the PIP data associatedwith at least one of the electronic calendar application, the electronicreminder application, the electronic contacts application, thecollaborative application, or the electronic communication application.14. The system of claim 13, wherein the memory stores furtherinstructions for causing the system to determine the user is availablebased on location data associated with the user.
 15. The system of claim11, wherein the memory stores further instructions for causing thesystem to determine the reporting period has ended and the user isavailable based on the PIP data associated with at least one of theelectronic calendar application, the electronic reminder application,the electronic contacts application, the collaborative application, orthe electronic communication application.
 16. The system of claim 11,wherein determining the tasks associated with the user in the reportingperiod comprises determining the tasks associated with the user in thereporting period based on tasks associated with a time period prior tothe reporting period.
 17. The system of claim 11, wherein the contentassociated with each task comprises: data associated with a structure ofan organization associated with the user; other users associated withthe task; one or more documents associated with the task; a deadlineassociated with the task; or a subject of the task.
 18. A method,comprising: determining, by a processing device, a plurality of tasksassociated with a user in a reporting period by analyzing personalinformation program (PIP) data associated with an electronic calendarapplication, an electronic reminder application, an electronic contactsapplication, or an electronic communication application; determining, bythe processing device, a priority of each task in the plurality of tasksbased on the reporting period and content associated with the task toproduce a plurality of prioritized tasks; and causing, by the processingdevice, a portion of the plurality of prioritized tasks to be displayedin a user interface, wherein one of the plurality of prioritized taskscomprises an interactive notification comprising one or more controlelements that each enable the user to perform an operation on the task.19. The method of claim 18, wherein the operation comprises delegatingthe task or rescheduling the task.
 20. The method of claim 18, whereinthe operation comprises canceling the task, deferring the task, orindicating the task is completed.